package com.atzqkya.ssm.controller;


import com.atzqkya.ssm.bean.User;
import com.atzqkya.ssm.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

import java.util.List;
import java.util.Map;

/**
 * Date:2020/10/9
 * Author:ybc
 * Description:
 */
@Controller
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 列表功能
     * @param map
     * @return
     */
    @RequestMapping("/users")
    public String getUserList(Map<String, Object> map) {
        List<User> list = userService.getUserList();
        map.put("list", list);
        return "list";
    }

    /**
     * 查询所有的员工信息，即列表功能
     * @return
     */
//    @RequestMapping("/users/{pageNumStr}")
//    public String getPageUser(@PathVariable("pageNumStr") String pageNumStr, Map<String, Object> map) {
//        Integer pageNum = 1;
//
//        try {
//            pageNum = Integer.parseInt(pageNumStr);
//        } catch (NumberFormatException e) { }
//        PageInfo<User> page = userService.getPageUser(pageNum);
//        System.out.println(page);
//        map.put("page", page);
//        return "list";
//    }

    /**
     * 添加和修改用户信息
     *
     * @param user
     * @return
     */
    @RequestMapping(value = "/user", method = {RequestMethod.POST, RequestMethod.PUT})
    public String addUser(User user) {

        //判断传过来的参数是否为null
        if (user.getId() == null) {
            //如果为null则执行添加功能
            //添加用户信息

         userService.addUser(user);
        }
        userService.updateUser(user);
        //添加或修改成功后 重定向到列表功能
        return "redirect:/users";
    }

//    @RequestMapping("/toAdd")
//    public String toAdd(){
//        return "addUser";
//    }
    /**
     * 通过id 查询用户信息 用于回显
     *
     * @return
     */
    @RequestMapping("/toUpdate/{userId}")
    public String updateUser(@PathVariable("userId") Integer userId, Map<String, Object> map) {
        //获取用户信息
        User user = userService.getUser(userId);
        //将获取到的用户信息在请求域中共享
        map.put("user", user);
        //跳转到修改页面
        return "updateUser";
    }

    /**
     * 删除 根据id
     */
    @RequestMapping(value = "/user/{userId}", method = RequestMethod.DELETE)
    public String deleteUserById(@PathVariable("userId") Integer userId) {
        //删除id用户信息
        userService.deleteUser(userId);
        //删除成功后 重定向到列表功能
        return "redirect:/users";
    }



}
